package persistentie;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import domein.Klant;

/**
* @author Mattias Gees
*/
public class KlantMapper{

	public List<Klant> getKlanten(){
		return this.getKlanten("");
	}
	
	public List<Klant> getKlanten(String zoekString){
		List<Klant> klantenLijst = new ArrayList<Klant>();
		Connection cxn = Database.getInstance().getConnection();
		
		try{
				Statement statement = cxn.createStatement();
				String sql = "SELECT PersoonID, Naam, Voornaam, Straat, Nummer, Gemeente, Postcode, Geboortedatum FROM Persoon";
				if(!zoekString.equals("")){
					sql += " WHERE Naam LIKE '%";
					sql += zoekString;
					sql += "%' OR Voornaam LIKE '%";
					sql += zoekString;
					sql += "%'";
				}
				ResultSet resultaat = statement.executeQuery(sql);
				
				while (resultaat.next()){
					int id = resultaat.getInt("PersoonID");
					String naam = resultaat.getString("Naam");
					String voornaam = resultaat.getString("Voornaam");
					String straat = resultaat.getString("Straat");
					String huisnummer = resultaat.getString("Nummer");
					String gemeente = resultaat.getString("Gemeente");
					int postcode = resultaat.getInt("Postcode");
					Date geboortedatum = resultaat.getDate("Geboortedatum");	
					Klant klant = new Klant(id, naam, voornaam, geboortedatum, straat, huisnummer, gemeente, postcode);
					klantenLijst.add(klant);
				}
				statement.close();		
			}
			catch(Exception e){
				
			}
		return klantenLijst;
	}
	
	public Klant getKlant(int id){
		Klant klant = null;
		Connection cxn = Database.getInstance().getConnection();
		
		try{
			Statement statement = cxn.createStatement();
			String query = "SELECT Persoon.Naam, Persoon.Voornaam, Persoon.Straat, Persoon.Nummer, Persoon.Postcode, Persoon.Gemeente, Persoon.Emailadres, Persoon.Telefoonnummer, Persoon.Geboortedatum FROM Persoon WHERE PersoonID = "+id;
			ResultSet resultaat = statement.executeQuery(query);
			
			while(resultaat.next()){
				String naam = resultaat.getString("Naam");
				String voornaam = resultaat.getString("Voornaam");
				String straat = resultaat.getString("Straat");
				String huisnummer = resultaat.getString("Nummer");
				int postcode = resultaat.getInt("Postcode");
				String gemeente = resultaat.getString("Gemeente");
				String emailadres = resultaat.getString("Emailadres");
				String telefoonnummer = resultaat.getString("Telefoonnummer");
				Date geboortedatum = resultaat.getDate("Geboortedatum");
				klant = new Klant(id, naam, voornaam, geboortedatum, straat, huisnummer, gemeente, postcode, telefoonnummer, emailadres);
			}
			statement.close();		
		}
		catch(Exception e){	
			e.printStackTrace();
		}
		return klant;
	}
}